Struktur paket IPv4

Sesebuah paket IP terdiri daripada bahagian pengepala dan bahagian data.

Penggepala

Pengepala paket IPv4 terdiri daripada 13 medan, yang mana 12 diperlukan. Medan yang ke-13 adalah tidak wajib (berlatar merah dalam jadual) dan lantas dinamakan: pilihan. Medan dalam pengepala dipaketkan dengan bait paling bererti terlebih dahulu (big endian), dan untuk gambar rajah dan perbincangan, bit paling bererti datang dulu (Penomboran bit MSB 0). Bit paling bererti dinomborkan 0, jadi medan versi sebenarnya boleh ditemukan dalam empat bit paling bererti bagi bait pertama, sebagai contoh:

ofset bit0–34–78–1516–1819–31
0VersiPanjang pengepalaDiffServJumlah Panjang
32PengenalpastianBenderaOfset Serpihan
64Masa HayatProtokolHasil Tambah Semak Pengepala
96Alamat Sumber
128Alamat Destinasi
160Pilihan ( jika Panjang Pengepala > 5 )
160
or
192+
 
Data
 
Versi Medan pengepala pertama dalam sesebuah paket IP ialah medan versi empat bit. Bagi IPv4, nilainya ialah 4 (maka dinamakan IPv4).Panjang Pengepala Internet (IHL) Medan kedua (4 bit) ialah Panjang Pengepala Internet (IHL) menguraikan bilangan 32-bit kata dalam pengepala. Oleh kerana pengepala IPv4 boleh mengandungi bilangan pilihan tidak tetap, medan ini menyatakan saiz pengepala (ini juga sekena dengan ofset kepada data). Nilai minimum bagi medan ini ialah 5 (RFC 791), dengan kepanjangan 5×32 = 160 bit = 20 bait. Kerana nilainya empat bit, panjang maksimumnya ialah 15 kata (15×32 bit) atau 480 bit = 60 bait.DiffServ (DS)
Lihat juga: DiffServ dan Type of Service
Asalnya ditakrifkan sebagai medan ToS, medan ini kini ditakrifkan oleh RFC 2474 untuk DiffServ dan oleh RFC 3168 untuk Explicit Congestion Notification (ECN), memadankan IPv6. Teknologi-teknologi adalah semakin maju yang memerlukan penstriman data masa sebenar dan dengan itu akan menggunakan medan DS. Salah satu contoh ialah Suara melalui IP (VoIP) yang digunakan untuk pertukaran suara data interaktif.Medan Type of Service (ToS) asalnya bertujuan untuk sesebuah hos penghantar menyatakan pilihan bagi cara datagram patut dikendalikan sedang ia merentasi Internet. Sebagai contoh, sesebuah hos boleh menetapkan medan ToS datagram IPv4nya untuk memilih lengahan rendah, sementara yang lain mungkin memilih keutuhan tinggi. Secara praktikal, medan ToS tidak digunakan secara meluas. Walau bagaimanapun, banyak kerja ujikaji, penyelidikan dan pengerahan telah tertumpu kepada cara untuk menggunakan lapan bit ini, lantas terhasilnya takrifan medan DS yang sekarang.Seperti yang ditakrifkan dalam RFC 791, lapan bit berikut diuntukkan kepada medan ToS:
  • bits 0–2: Duluan (111 - Kawalan Rangkaian, 110 - Kawalan Antara Rangkaian, 101 - CRITIC/ECP, 100 - Penggubal Flash, 011 - Flash, 010 - Segera, 001 - Keutamaan, 000 - Rutin)
  • bit 3: 0 = Lengahan Normal, 1 = Lengahan Rendah
  • bit 4: 0 = Truput Normal, 1 = Truput Tinggi
  • bit 5: 0 = Keutuhan Normal, 1 = Keutuhan Tinggi
  • bit 6: 0 = Kos Normal, 1 = Kurangkan Kos Kewangan (ditakrifkan oleh RFC 1349)
  • bit 7: belum ditakrifkan
Jumlah Panjang Medan sepanjang 16-bit ini mentakrifkan keseluruhan saiz datagram, termasuk pengepala dan data, dalam bait. Panjang minima datagram adalah 20 bait (20-bait pengepala + 0 bait data) dan maksima adalah 65,535 — nilai maksima bagi perkataan 16-bit. Saiz minima datagram yang sebarang host perlukan bagi mampu dikendali adalah 576 bait, tetapi kebanyakan hos moden mengendali paket lebih besar. Kadang-kala subrangkaian menetapkan had tambahan pada saiz, dalam kes ini datagram perlu diserpihkan. Serpihan dikendali pada samada suis paket atau hos dalam IPv4.Pengenalpastian Medan ini merupakan medan pengenalpastian dan digunakan khusus bagi mengenal pasti serpihan dari datagram IP asal. Sesetengah ujian mencadangkan menggunakan medan ID bagi tujuan lain, seperti untuk menambah maklumat penyurihan paket pada datagram bagi membantu mengesan kembali datagram dengan alamat sumber dari serangan perdayaan.Bendera Medan tiga bit seterusnya dan digunakan bagi mengawal dan mengenal pasti serpihan. Ia adalah (dalam turutan, dari tahap tertinggi pada tahap terendah):
  • bit 0: Disimpan; mesti sifar.[note 1]
  • bit 1: Jangan Serpihkan (DF)
  • bit 2: Lebih Serpihan (MF)
Jika bendera DF disetkan dan penyerpihan diperlukan untuk menghalakan sesebuah paket, maka paket tersebut akan ditolak. Ini dapat digunakan apabila menghantar paket kepada hos yang tidak memiliki sumber yang cukup untuk mengendalikan penyerpihan.Apabila sesebuah paket diserpihkan, bendera MF bagi semua serpihan akan diset kecuali serpihan yang akhir. Bendera MF juga tidak diset pada paket yang tidak diserpihkan — sesebuah paket yang tidak diserpihkan merupakan serpihan terakhirnya sendiri.Ofset Serpihan Medan ofset serpihan diukur dalam unit blok lapan bait, berkepanjangan 13 bit dan menyatakan ofset bagi serpihan tertertu relatif kepada permulaan datagram IP asal yang belum diserpihkan. Ofset serpihan pertama adalah sifar. Ini membenarkan ofset maksimum (213 – 1) × 8 = 65,528 bait yang mana lebih daripada panjang maksimum paket IP 65,535 bait termasuk pengepalanya (65,528 + 20 = 65,548 bait).Masa Hayat (TTL) Medan lapan bit masa hayat (TTL) membantu mengelakkan datagram daripada menetap di Internet. Medan ini menghadkan jangka hayat sesebuah datagram. Ia dinyatakan dalam saat, tapi buat sela masa kurang daripada 1 saat, ia akan dibundarkan kepada satu. Dalam kependaman biasa dalam praktik, ia dijadikan sebagai medan kiraan hop. Setiap penghala yang direntasi sesebuah datagram mengurangkan medan TTL dengan satu. Bila saja medan TTL mencapai sifar, paket tidak lagi akan dimajukan oleh suis paket dan dibuang. Biasanya, mesej ICMP (khususnya Time Exceeded) akan dihantar balik kepada penghantar yang ia telah dibuang. Penerimaan mesej-mesej ICMP ini adalah kunci bagaimana traceroute berfungsi.Protokol Medan ini mentakrifkan protokol yang digunakan dalam bahagian data bagi sesebuah datagram IP. Internet Assigned Numbers Authority menyenggara satu senarai nombor-nombor protokol yang asalnya ditakrifkan dalam RFC 790. Protokol-protokol biasa dan nilai perpuluhannya ditunjukkan di bawah (lihat Data).Hasil Tambah Semak Pengepala Medan hasil tambah semak (h.t.s.) 16-bit digunakan untuk pemeriksaan ralat pengepala. Pada setiap hop, h.t.s. pengepala harus dibandingkan dengan nilai medan ini. Jika ada satu h.t.s. yang tidak cocok, maka paket tersebut akan dibuang. Perhatikan bahawa ralat dalam medan data akan ditangani oleh protokol yang dikapsulkan - tentu sekali, kedua-dua UDP dan TCP mempunyai medan h.t.s..Kerana medan TTL dikurangkan pada setiap hop dan penyerpihan boleh dilakukan pada setiap hop, maka, h.t.s. akan dikira semula pada setiap hop. Kaedah yang digunakan untuk mengira semula h.t.s. ditakrifkan dalam RFC 1071:Medan hasil tambah semak adalah pelengkap satu 16-bit bagi jumlah pelengkap satu bagi semua kata 16-bit dalam pengepala. Nilai medan hasil tambah semak adalah sifar untuk tujuan mengira hasil tambah semak.Dalam kata lain, semua kata 16-bit dijumlahkan bersama menggunakan pelengkap satu (dengan medan h.t.s. disetkan menjadi sifar). Jumlah tadi kemudiannya dilengkapsatukan dan jumlah akhir ini disisipkan sebagai medan h.t.s..Sebagai contoh, bagi Heks 45000030442240008006442e8c7c19acae241e2b (pengepala IP 20 bait):4500 + 0030 + 4422 + 4000 + 8006 + 0000 + 8c7c + 19ac + ae24 + 1e2b = 2BBCF2 + BBCF = BBD1 = 1011101111010001, lengkapan 1 untuk jumlah = 0100010000101110 = 442EAlgoritma yang sama boleh digunakan untuk mengesahkan h.t.s. sesuatu pengepala — h.t.s. bagi pengepala dengan medan h.t.s. diisikan seharusnya satu kata yang mengandungi semua sifar (nilai 0).Alamat sumber Alamat IPv4 adalah kumpulan empat oktet dengan jumlah 32 bit. Nilai medan ini ditentukan dengan mengambil nilai perduaan setiap oktet dan menggabungkan mereka menjadi satu nilai 32 bit tunggal.Sebagai contoh, alamat 10.9.8.7 akan jadi 00001010000010010000100000000111.Alamat ini adalah alamat bagi penghantar paket. Perhatikan bahawa alamat ini mungkin bukan penghantar "sebenar" paket disebabkan oleh terjemahan alamat rangkaian. Sebaliknya, alamat sumber tersebut akan diterjemahkan oleh mesin NAT kepada alamatnya sendiri. Jadi, paket-paket balasan yang dihantar oleh penerima dihalakan ke mesin NAT, yang menterjemahkan alamat destinasi kepada alamat asal penghantar.Alamat destinasi Serupa dengan alamat sumber tetapi untuk penerima paket.Pilihan Medan-medan pengepala tambahan mungkin menyusuli medan alamat destinasi, namun ini jarang digunakan. Perhatikan bahawa nilai dalam medan IHL mesti menyertakan kata 32-bit tambahan yang cukup untuk memegang kesemua pilihan (termasuk sebarang pad diperlukan untuk memastikan yang pengepala mengandungi nombor integer kata 32-bit). Senarai pilihan boleh dimatikan dengan pilihan EOL (End of Options List, 0x00); ini cuma perlu jika penghujung pilihan tidak akan sama dengan penghujung pengepala. Pilihan-pilihan yang boleh diletakkan di dalam pengepala adalah seperti berikut:
MedanSaiz (bit)Huraian
Copied1Diset kepada 1 jika pilihan perlu disalin kedalam semua serpihan bagi paket terserpih.
Option Class2Kategori pilihan yang umum. 0 untuk pilihan "control", dan 2 untuk "debugging and measurement". 1, dan 3 adalah simpanan.
Option Number5Menyatakan pilihan.
Option Length8Menunjukan saiz bagi keseluruhan pilihan (termasuk medan ini). Medan ini mungkin tiada untuk pilihan mudah.
Option DataBoleh ubahData berkhususkan pilihan. Medan ini mungkin tiada untuk pilihan mudah.
  • Catatan: Jika Panjang Pengepala lebih besar daripada 5, yakni berada di antara 6-15, ini bermakna yang medan Pilihan wujud dan harus diambil kira.
  • Catatan: Copied, Option Class, dan Option Number kadang kala dirujuk sebagai satu medan lapan bit tunggal - Option Type.
Penggunaan pilihan LSRR dan SSRR tidak digalakkan kerana boleh memberi kesan terhadap keselamatan; paket blok kebanyakan penghala mengandungi pilihan-pilihan ini.[petikan diperlukan]

Data

Ruang terakhir bukanlah sebahagian daripada pengepala dan, dengan itu, tidak disertakan dalam ruang hasil tambah semak.Kadungan ruang data dinyatakan dalam ruang pengepala protokol dan boleh jadi salah satu daripada protokol-protokol lapisan pengangkutan.

Antara protokol yang sering digunakan, termasuk nilainya dalam ruang protokol, disenaraikan di bawah:

Lihat Senarai nombor protokol IP untuk senarai yang lengkap.

Rujukan

WikiPedia: IPv4 http://www.3com.com/other/pdfs/infra/corpinfo/en_U... http://www.inetcore.com/project/ipv4ec/index_en.ht... http://technet.microsoft.com/en-us/library/cc77908... http://www.networksorcery.com/enp/protocol/ip.htm http://www.potaroo.net/tools/ipv4/index.html http://www.tndh.net/~tony/ietf/ipv4-pool-combined-... https://d-nb.info/gnd/4588596-5 https://www.apnic.net/community/ecosystem/igf/arti... https://web.archive.org/web/20100608114541/http://... https://web.archive.org/web/20110109025511/http://...